/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.vdab.servlets;

import be.vdab.entiteit.Reservatie;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author tom.vanpoucke
 */
@WebServlet("/voorstellingen/winkelmandje.htm")
public class WinkelmandjeServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final String VIEW = "/WEB-INF/JSP/winkelmandje.jsp";
    private static final String SUCCES = "/voorstellingen/winkelmandje.htm";
    private static final String REDIRECT_URL = "/welkom.htm";

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession(false);
        if(session != null){
            @SuppressWarnings("unchecked")
            Set<Reservatie> mandje = (Set<Reservatie>) session.getAttribute("mandje");
            
            if(mandje != null && !mandje.isEmpty() ){ 
                double betalen = 0;
                Set<Reservatie> voorstellingenInMandje = new HashSet<Reservatie>();
                for(Reservatie voorstelling : mandje){
                    voorstellingenInMandje.add(voorstelling);
                    betalen = betalen + (voorstelling.getVoorstelling().getPrijs()*voorstelling.getPlaatsen());
                }
                request.setAttribute("betalen", betalen);
                request.setAttribute("voorstellingenInMandje", voorstellingenInMandje);
                 RequestDispatcher dispatcher = request.getRequestDispatcher(VIEW);
                dispatcher.forward(request, response);       

            }
            else{
                response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + REDIRECT_URL));
            }
        }
        else{
            response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + REDIRECT_URL));
        }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession(false);
        if(session != null){
            Set<Reservatie> mandje = (Set<Reservatie>) session.getAttribute("mandje");
            Set<Reservatie> copy = new HashSet<Reservatie>(mandje);
            String[] teVerwijderen = request.getParameterValues("verwijderen");
            if(request.getParameterValues("verwijderen") != null){
                try{
                    for(Reservatie reservaties : copy){
                        for(String s : teVerwijderen){
                            if(reservaties.getVoorstelling().getVoorstellingsNr() == Integer.parseInt(s)){
                                mandje.remove(reservaties);
                            }
                        }
                    }
                }
                catch(Exception ex){
                    
                }
            }
            session.setAttribute("mandje", mandje);
            response.sendRedirect(request.getContextPath() + SUCCES);
        }
    }
}
